import axios from './axios-config';
import { useAuthStore } from '../stores/auth';

/**
 * 检查认证状态并进行API测试
 * 此函数可以在组件中调用，用于调试认证问题
 */
export async function checkAuthAndApi() {
  console.group('===== 认证调试工具 =====');
  
  // 1. 检查本地存储中的token
  const token = localStorage.getItem('admin_token');
  console.log('本地存储中的token:', token ? `${token.substring(0, 15)}...` : '未找到');
  
  // 2. 检查Pinia store中的认证状态
  try {
    const authStore = useAuthStore();
    console.log('Pinia store认证状态:', {
      isLoggedIn: authStore.isLoggedIn,
      adminId: authStore.adminId,
      name: authStore.name,
      token: authStore.token ? `${authStore.token.substring(0, 15)}...` : '无'
    });
    
    // 3. 刷新认证状态
    authStore.checkAndRefreshAuth();
    console.log('刷新认证状态后:', {
      isLoggedIn: authStore.isLoggedIn,
      token: authStore.token ? `${authStore.token.substring(0, 15)}...` : '无'
    });
  } catch (error) {
    console.error('获取或刷新认证状态时出错:', error);
  }
  
  // 4. 发送测试请求
  try {
    console.log('发送API测试请求...');
    // 发送一个简单的GET请求到需要认证的端点
    const response = await axios.get('/api/test-auth');
    console.log('API测试请求成功:', response.data);
  } catch (error) {
    console.error('API测试请求失败:', {
      status: error.response?.status,
      statusText: error.response?.statusText,
      data: error.response?.data,
      message: error.message,
      config: {
        url: error.config?.url,
        method: error.config?.method,
        headers: error.config?.headers
      }
    });
    
    // 特别检查请求头中是否包含Authorization
    if (error.config && error.config.headers) {
      console.log('请求头中Authorization:', error.config.headers.Authorization || '未找到');
    }
  }
  
  console.groupEnd();
}

/**
 * 检查环境变量配置
 */
export function checkEnvConfig() {
  console.group('===== 环境变量配置 =====');
  console.log('API基础URL:', import.meta.env.VITE_API_BASE_URL || '未设置');
  console.log('当前环境:', import.meta.env.MODE);
  console.groupEnd();
}

export default {
  checkAuthAndApi,
  checkEnvConfig
}; 